package com.eu.ebpm.engine.query;

import java.util.List;

/**
 * 
 * @author 王晓华
 * @param <T>
 *            查询接口
 * @param <U>
 *            目标值
 */
public interface Query<T extends Query<?, ?>, U extends Object> {
	
	/**
	 * 升序
	 */
	T asc();

	/**
	 * 降序
	 */
	T desc();

	/**
	 * 查询唯一记录
	 */
	U singleResult();

	/**
	 * 查询列表
	 */
	List<U> list();

	/**
	 * 分页查询
	 * 
	 * @param currentPage
	 *            查询页码
	 * @param pageSize
	 *            每页大小
	 * @return
	 */
	Page<U> listPage(int currentPage, int pageSize);

}
